//////////////////////////////////////////////////////////////////////////

#ifndef _DEVICEINTERFACE_H_
#define _DEVICEINTERFACE_H_

//////////////////////////////////////////////////////////////////////////

#ifndef _TIMER_H_
#include "timer.h"
#endif

#include <vector>
#include <stdio.h>

class Research;

//////////////////////////////////////////////////////////////////////////

/** Interface to the device, implements podograph managing, reads research data
*
*  @author  Anastasia Karpinska
*  @since   Oct 22nd, 2009
*  @updated Oct 22nd, 2009
*/

class DeviceInterface
{
//////////////////////////////////////////////////////////////////////////

public:

//////////////////////////////////////////////////////////////////////////


    /** Constructor */
    DeviceInterface();


    /** Reads data from the device */
    void ReadData( Research& _research ) const;


    /** Start device */
    void Start();


    /** Stop device */
    void Stop();


//////////////////////////////////////////////////////////////////////////

private:

//////////////////////////////////////////////////////////////////////////


    /** Timer */
    Timer m_Timer;


    /** COM1 port stream */
    FILE* m_Comport;


    /** Data */
    std::vector<char> m_Data;


//////////////////////////////////////////////////////////////////////////
};

//////////////////////////////////////////////////////////////////////////

#endif

//////////////////////////////////////////////////////////////////////////
